As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements can vary between different applications, information handling systems can also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information can be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems can include a variety of hardware and software components that can be configured to process, store, and communicate information and can include one or more computer systems, data storage systems, and networking systems.
The ability to boot an information handling system with a remotely stored boot image is becoming more important. The remotely stored boot image can allow for quicker re-provisioning of an information handling system, and particularly a server, and also allow for better management and control of boot images. FIG. 1 includes an illustration of a block diagram of a system 100 that includes information handling systems 120 and 140 that are coupled to an Ethernet network 180, which is coupled to an Internet Small Computer System Interface (iSCSI) storage array 160. The storage array 160 includes a plurality of different boot images 162.
The information handling system (IHS) 120 includes a conventional Network Interface Card (NIC) or Transmission Control Protocol/Internet Protocol (TCP/IP) Offload Engine Adapter (or TOE Adapter) 122. The NIC or TOE Adapter 122 that support boot operates using a software initiator when booting within pre-operating system (pre-OS) and operating system (OS) environments 124 and 126. When the booting sequence starts, bootstrap code within a Basic Input/Output System (BIOS) executes code such that the IHS 120 is operating within the pre-OS environment 124. The bootstrap code includes code for a pre-OS iSCSI software initiator 1242. The pre-OS iSCSI software initiator 1242 the network stack 1246 is is started. The pre-OS iSCSI software initiator 1242 also allows the IHS 120 to communicate using the NIC or TOE Adapter 122 using the iSCSI protocol in the pre-OS environment 124 with the iSCSI storage array 160, to start the boot process from one of the boot images 162. The pre-OS software iSCSI initiator is configured with boot configuration information (information about the address of the iSCSI storage device and location within the storage device of its boot image) to start the boot process for the HIS 120. Also, an iSCSI Boot Firmware Table (iBFT) 1244 is created while the IHS 120 is operating within the pre-OS environment 124. The iBFT 1244 is populated with information from the boot configuration information 172 while the information handling system 120 is within the pre-OS environment 124.
As part of the boot process in the OS environment 126, the network stack 1263, the OS iSCSI software initiator 1262, and the iBFT driver 1264 are started. The iBFT driver 1264 obtains boot information from the iBFT 1244 to configure and run an OS iSCSI software driver 1264 while the IHS 120 is within the OS environment 126 as part of the boot process.
Because software initiators are used, a standard application program interface can be used for configuration of boot regardless of the particular vendor of the NIC or TOE Adapter 122. Thus a common boot configuration client 1246 in the pre-OS environment 124 can be used for a given pre-OS iSCSI software initiator 1242 to configure the boot configuration information. The boot configuration client 1246 can communicate with the remote source 170 that contains boot configuration information 172 for multiple IHS to obtain the via an Ethernet network 180 to obtain the boot configuration information for this IHS 120. The boot configuration information 172 includes an address (e.g., a pointer) for a boot image for the IHS 120.
Unlike the IHS 120, the IHS 140 includes a different network adapter. More particularly, the IHS 140 includes an iSCSI Host Bus Adapter (iSCSI HBA) 142. When the booting sequence starts, the BIOS executes bootstrap code such that the IHS 140 is operating within the pre-OS environment 144. The bootstrap code includes code to interface to a pre-OS iSCSI HBA initiator 1442, which may be software that can interface with the iSCSI HBA or is integrated into the iSCSI HBA. Like the IHS 120, for IHS 140 the pre-OS iSCSI HBA initiator 1442 and iSCSI Host Bus Adapter 142 is configured with the information of where to find the boot image for the IHS 140 (boot configuration information). The boot process is started with the pre-OS iSCSI HBA initiator 1442. Boot continues through the iSCSI Host Bus Adapter 142 in the OS environment 146 (with the boot configuration information in the iSCSI Host Bus Adapter 142 configured in it in the pre-OS environment 144) after configuring and starting the OS iSCSI HBA driver 1466, which is the particular hardware driver for the iSCSI Host Bus Adapter 142.
A particular problem with hardware initiators, and their application programming interfaces to configure information for boot, is that they are specific to particular manufacturers of the corresponding hardware. More particularly, different manufacturers of the same type of hardware may have different application programming interfaces. Even within the same manufacturer, different generations of the same type of hardware may also have different application programming interfaces. Thus to remotely configure the boot information for the IHS 140 using boot configuration information 172 in the remote source 170, a boot configuration client 1446 has to implement many different application program interfaces for each specific iSCSI Host Bus Adapter, which is undesirable.
Skilled artisans appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of embodiments of the invention.